package com.ruoyi.tzai.service;

import java.util.List;
import com.ruoyi.tzai.domain.UserPlayHistory;

/**
 * 用户播放历史Service接口
 * 
 * @author tzai
 * @date 2025-10-27
 */
public interface IUserPlayHistoryService 
{
    /**
     * 查询用户播放历史
     * 
     * @param historyId 用户播放历史主键
     * @return 用户播放历史
     */
    public UserPlayHistory selectUserPlayHistoryByHistoryId(Long historyId);

    /**
     * 根据用户ID和文章ID查询用户播放历史
     * 
     * @param userId 用户ID
     * @param articleId 文章ID
     * @return 用户播放历史
     */
    public UserPlayHistory selectUserPlayHistoryByUserIdAndArticleId(Long userId, Long articleId);

    /**
     * 查询用户播放历史列表
     * 
     * @param userPlayHistory 用户播放历史
     * @return 用户播放历史集合
     */
    public List<UserPlayHistory> selectUserPlayHistoryList(UserPlayHistory userPlayHistory);

    /**
     * 新增用户播放历史
     * 
     * @param userPlayHistory 用户播放历史
     * @return 结果
     */
    public int insertUserPlayHistory(UserPlayHistory userPlayHistory);

    /**
     * 修改用户播放历史
     * 
     * @param userPlayHistory 用户播放历史
     * @return 结果
     */
    public int updateUserPlayHistory(UserPlayHistory userPlayHistory);

    /**
     * 批量删除用户播放历史
     * 
     * @param historyIds 需要删除的用户播放历史主键集合
     * @return 结果
     */
    public int deleteUserPlayHistoryByHistoryIds(Long[] historyIds);

    /**
     * 删除用户播放历史信息
     * 
     * @param historyId 用户播放历史主键
     * @return 结果
     */
    public int deleteUserPlayHistoryByHistoryId(Long historyId);

    /**
     * 更新播放进度
     * 
     * @param userId 用户ID
     * @param articleId 文章ID
     * @param language 播放语言
     * @param playProgress 播放进度（秒）
     * @param duration 总时长（秒）
     * @return 结果
     */
    public int updatePlayProgress(Long userId, Long articleId, String language, Integer playProgress, Integer duration);
}

